In a communication system data is transmitted as a plurality of data symbols in subsequent data frames. The signals carrying the data may be transmitted with variable data transmission rates (data speeds), wherein the transmission rate may be different in subsequent frames of the transmission. For example, in a cellular CDMA (Code Division Multiple Access) system data is encoded for transmission by processing data symbols to be transmitted by a spreading code and a unique scrambling code for each transmission channel. The length of the spreading code (i.e. the number of “chips” per a data symbol) is defined by a spreading factor. The effect of a spreading code is to spread the frequency band of a transmission to a chip rate which is larger than the actual information bit rate. This results that more symbols or bits are transmitted than what the actual number of information symbols or bits is. For example, if the used spreading factor is eight, eighth bits (referred to as “chips”) are transmitted for every information bit. The scrambling code is unique for each mobile station transmitting to a single base station so that the transmission from individual mobile stations can be distinguished at the base station. The spreading codes as well as the scrambling codes are preferably as far as possible orthogonal to allow for a plurality of different mobile stations to communicate with a base station on selectively coded channels.
For example, it is thus possible to set up such a variable-rate (multi-rate) connection where the data rate of the information bits, and thus the spreading code used in the spreading modulation of these bits, varies from radio frame to radio frame (e.g. every 10 ms). The data rates used in such a connection are not arbitrary, but for each radio frame duration, one of the plurality of pre-defined data rates is used. Moreover, every higher data rate is dividable by a lower data rate, the division factor being 2k for k≧0. Although this specification presents an example employing variable-rate connection spreading factors 4, 8, 16, 32, 64, 128 and 256 and corresponding data rates, it is evident that also other spreading factors and data rates could be used without departing from the basic concept of the variable data rate (or multi-rate) transmission. To give an example, in a CDMA with a chip rate of 4.096 MHz the relation between the spreading factors (SF) and the data rates is such that spreading factors 4, 8, 16, 32, 64, 128 and 256 correspond data rates 1024, 512, 256, 128, 64, 32 and 16 kbps, respectively. However, if the chip rate frequency changes, the relation between the spreading factors and data rates will change accordingly.
When a signal is transmitted between a base station and a mobile station (either on the uplink or the downlink) of a CDMA system, the receiving station needs to establish from the received signal some information about the communication path along which the signal has travelled. This procedure is referred to herein as “channel estimation”. The channel estimation is typically carried out in a channel estimation unit. Various techniques are known for channel estimation. A channel impulse response generated by the estimation unit is required in order to properly decode and process incoming data.
The spreading factor and/or the corresponding data transmission rate of the received signal can be used in the channel estimation. However, if the spreading factor and/or data rate of a received radio frame is not directly available at the receiving station, the correct data rate has to be determined by some means, e.g. by trying several possible data spreading factors for the transmission. For example, in the CDMA the information symbols in said radio frame are usually obtained by means of detecting the complex data symbols assuming that the highest-possible data rate is used for transmission, and using the lowest-possible spreading factor in the receiving station. The shortest possible spreading code (e.g. with spreading factor SF=4) has to be known so that all the other codes can be constructed from the shortest code by multiplying the shortest code by an integer. In practice, if the code length i.e. the spreading factor is not known, the receiver unit must perform the first despreading based on an assumption that the shortest possible code (minimal SF) was used for the transmission. For example, assuming that the data rate of the received radio frame was 1024 kbps in the first place, this corresponds to the spreading factor of 4 (at 4.096 Mcps) used in the detection of the data symbols. The result of this detection should be a data vector of all detected complex information symbols corresponding to the received radio frame.
However, after a MRC (maximal ratio combination) a correct spreading factor has to be used, otherwise the received data cannot be properly represented or used otherwise decoded and/or will be lost. Therefore the above assumption of the data rate is not enough, but it has to be estimated what was the actual data rate of the signal at the transmitting station during the transmission. For example, as the basic assumption may be incorrect, this stage might give a decision that instead of the assumed and initially used 1024 kbps (with spreading factor 4 and frequency 4.096 MHz) the actual data rate in the received radio frame was 256 kbps (corresponding to the spreading factor of 16). After the estimation of the correct data rate, as many adjacent symbols as is indicated by the spreading factor are summed together to get one actual information symbol. In the above example, this would lead to summing up every four adjacent symbols to get one actual information symbol (4×4=16). Therefore it would be advantageous to be able to have information of the actual data rate and/or spreading factor of the transmission already at the time of the detection of the signal at the receiver circuitry.
The transmission between the stations may or may not include explicit information of the spreading factors and/or data rates of the transmitted signal. In the first case, i.e. if the variable-rate connection includes explicit information on the used data rates for each received radio frame, this information is usually given in a separate channel, for example in an DPCCH (Dedicated Physical Control Channel). However, this information is often encoded in such a way that the actual data rate of the received radio frame is not known at the time the data symbols of the radio frame are detected. In addition, it may be necessary in some applications to be able to establish another estimate of the data rate, for example for the purposes of verification and/or correction of the received date rate information. In the latter case, i.e. if the explicit information is not included in the received signal, so called unknown or blind data rate estimation may be used at the receiving station in order to define at the receiver the actual data rate of the received signal.
Therefore a mechanism is needed for estimating the data rate or spreading factor in a receiving station (e.g. a base station or a mobile station). This estimate may be desirable e.g. when this information is not available, or when an early estimate of the data rate is required before decoding, or when a confirmation of data rate information received from the transmitting station is desired.
One prior art proposal for detecting the data rate of the received signal before decoding is based on the power difference of the received bits in the data channel and the control channel (i.e. the power ratio between the data and control channels). The method is relatively simple as it requires only the average power estimates of the received control symbols and data symbols. However, the disadvantage of the power ratio method is that it is not very accurate and/or reliable. Especially, if a low spreading factor is used in detecting the data symbols (SF=4 in the above example) in the first place, noise becomes very dominant in the detection process. This degrades substantially the performance of the data symbol power estimation.
Another prior art method is based on CRC (Cyclic Redundancy Check: an error detection signal) decoding of the received signal. In here a convolutional code or any other appropriate code (e.g. so called turbo code that is typically applied for high-speed data transmission) is decoded for each possible spreading factor and a CRC check is accomplished for the results. If a correct CRC is detected, a correct data rate has been found. In other words, the method is based on a data rate assumption at each decoding stage and a subsequent selection of a data rate which gives either a correct or an incorrect CRC word. To give an example, assuming again that the possible data rates are 32, 64, 128, 256, 512, and 1024 kbps, a CRC check would be calculated directly for the information symbols of the received radio frame by assuming firstly a data rate of 1024 kbps. The resulting CRC word is stored. Two adjacent received symbols are summed together, assuming a data rate of 512 kbps, and a further CRC check is calculated for these information symbols. The resulting CRC word is stored. The process continues summing two adjacent information symbols together and calculating CRC checks for all these information streams until a lowest-possible data rate is achieved. Thereafter the stored CRC words are verified and such a data rate is selected that corresponds the rate used in the transmitter when a right CRC check was obtained (if such existed at all).
However, the CRC method is computationally complex and involves a substantially large amount of processing since the convolutional code or similar must be decoded for each possible frame length. If there are N possible data rates, this requires N consequent CRC decoding processes before a decision of the transmitter data rate can be made. In addition, the spreading factor detector based on the CRC has to be located after decoding, and the data rate for a frame can be calculated only after the entire radio frame has been received. Thus this method cannot be used e.g. when the spreading factor has to be known all the time during the receiving process, and the CRC check may not be applied in applications where the data rate information has to be available before the entire radio frame has been received. The above method delays the final decision of the data rate of the received signal to a stage where at least some decoding of the data is needed for the first time. This will make the operation difficult for receiver structures that require an estimate of the data transmission rates of the received signals at an earlier stage than the first decoding. One such receiver comprises an Interference Cancellation (IC) receiver. Moreover, the method does not give any data rate at all if the algorithm does not give an exactly matching CRC check.